import multiprocessing
import sys
import os


# 检测是否在 PyInstaller 打包后的环境中
is_frozen = getattr(sys, 'frozen', False)

def prepare_multiprocessing():
    """准备多进程环境"""
    # 确保在 Windows 下使用 spawn 方式创建进程
    if sys.platform.startswith('win'):
        try:
            multiprocessing.set_start_method('spawn')
        except RuntimeError:
            pass  # 如果已经设置了启动方法，忽略错误

    # 为 PyInstaller 打包环境添加特殊处理
    if is_frozen:
        # 确保多进程模块能正确处理导入路径
        import tempfile
        import importlib.util
        
        # 设置临时目录作为导入路径
        temp_dir = tempfile.gettempdir()
        if temp_dir not in sys.path:
            sys.path.append(temp_dir)

        # 确保 multiprocessing 的 freeze_support 被调用
        if hasattr(multiprocessing, 'freeze_support'):
            multiprocessing.freeze_support()


def init_process():
    """初始化进程"""
    if multiprocessing.current_process().name == 'MainProcess':
        prepare_multiprocessing()


if __name__ == '__main__':
    prepare_multiprocessing()
